/*
  Programa GEFE - Gestión de eventos lúdicos.
  Copyright (C) 2010  Antonio Ramírez Marti

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "addproductosdialog.h"
#include "ui_addproductosdialog.h"

#include <QSqlRecord>
#include <QCloseEvent>


addProductosDialog::addProductosDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::addProductosDialog)
{
    ui->setupUi(this);
    setup();
}

addProductosDialog::~addProductosDialog()
{
    delete ui;
}

void addProductosDialog::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void addProductosDialog::setup()
{
    this->modeloProductos=0;
    creaModelos();
    conectaModelos();
    conectaAcciones();
}

void addProductosDialog::creaModelos()
{
    if(modeloProductos)
        delete modeloProductos;
    modeloProductos=new QSqlTableModel(this,QSqlDatabase::database("evento"));

    modeloProductos->setTable("producto");
    modeloProductos->setHeaderData(0,Qt::Horizontal,"Producto",Qt::DisplayRole);
    modeloProductos->setHeaderData(1,Qt::Horizontal,"Precio de venta",Qt::DisplayRole);
    modeloProductos->setHeaderData(2,Qt::Horizontal,"Precio de organizacion",Qt::DisplayRole);
    modeloProductos->select();
}

void addProductosDialog::conectaModelos()
{
    ui->vistaProductos->setModel(modeloProductos);
    ui->vistaProductos->resizeColumnsToContents();
}

void addProductosDialog::conectaAcciones()
{
    connect(ui->addButton,SIGNAL(clicked()),this,SLOT(addProducto()));
}

void addProductosDialog::addProducto()
{
    if(ui->productoLine->text().isEmpty() || ui->productoLine->text().isNull())
    { return; }

    QSqlRecord producto=modeloProductos->query().record();

    producto.setValue("nombre",ui->productoLine->text());
    producto.setValue("precioVenta",ui->asistenteSpinBox->value());
    producto.setValue("precioOrg",ui->organizacionSpinBox->value());

    modeloProductos->insertRecord(modeloProductos->rowCount(),producto);
    modeloProductos->select();
    ui->vistaProductos->resizeColumnsToContents();
}
